package cn.lg.controller;

import cn.lg.domain.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * 订单服务的接口
 */
@Slf4j
@RestController
public class OrderController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/getUserById/{id}")
    public User getUser(@PathVariable("id")Long id) {
        // 订单服务，调用 User服务获取到 User对象
        // 2020 端口号是固定的，需要负载均衡 Ribbon - 写死了，应该动态引用端口号
        //String url = "http://localhost:2020/getUserById/"+id;

//         Ribbon 通过服务名找到 客户端列表，取出合适的客户端发送请求 - 跨微服务调用
        String url = "http://user-server/getUserById/" + id; ///user-server-调用方

        // 发送请求
        return restTemplate.getForObject(url, User.class);
//        return new User(id,"时光鸡","有节操的鸡");

    }
        /**
         * 浏览器访问order，发送HTTP从注册中心拿到user的地址，返回到order，响应到前端
         */


        // 兜底方法，正常请求失败，会调用！
        public User getUserfallBack(Long id){
            log.debug("请求失败，用户服务不可用!!");
            return new User(-1L,"用户不存在","用户服务不可用");
    }
}